/**

 * @模块名：demo
 * @包名：com.example.gz.utils
 * @描述：GZ.java
 * @版本：1.0
 * @创建人：李凯
 * @创建时间：2021年4月7日下午6:26:26
 */
package com.example.gz.utils;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.GZIPInputStream;

import com.example.utils.JSONUtil;

/**
 * @模块名：demo
 * @包名：com.example.gz.utils
 * @类名称：GZ
 * @类描述：.gz压缩包工具
 * @版本：1.0
 * @创建人：李凯
 * @创建时间：2021年4月7日下午6:26:26
 */
public class GZUtil {

	public static void main(String[] args) {
		String url = "G:\\XT0308.zyb.20210406.65002.0000.dat.gz";
		unGzipFile(url);
	}

	public static void unGzipFile(String sourcedir) {
		BufferedReader bufferedReader = null;
		InputStreamReader read = null;
		GZIPInputStream gzin = null;
		FileInputStream fin = null;
		try {
			// 建立gzip压缩文件输入流
			fin = new FileInputStream(sourcedir);
			// 建立gzip解压工作流
			gzin = new GZIPInputStream(fin);
			List<Map<String, String>> results = new ArrayList<Map<String, String>>();
			read = new InputStreamReader(gzin, "GBK");
			bufferedReader = new BufferedReader(read);
			String lineTxt = null;
			while ((lineTxt = bufferedReader.readLine()) != null) {
				Map<String, String> temp = new HashMap<String, String>();
				String[] result = lineTxt.split(String.valueOf((char) 1), -1);
				temp.put("zydh", result[0].trim());
				temp.put("zysm", result[1].trim());
				results.add(temp);
			}
			System.out.println(JSONUtil.objToJsonStr(results));
		} catch (Exception ex) {
			System.err.println(ex.toString());
		} finally {
			try {
				if (bufferedReader != null)
					bufferedReader.close();
				if (read != null)
					read.close();
				if (gzin != null)
					gzin.close();
				if (fin != null)
					fin.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return;
	}
}
